package org.dtrd.modules.flup.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dtrd.modules.flup.entity.bean.FlupTemplateDetail;
import org.dtrd.modules.flup.entity.bean.FlupTemplateListInfo;
import org.dtrd.modules.flup.entity.po.DtrdEntRdFlupTemplate;
import org.dtrd.modules.flup.entity.request.FlupTemplateListRequest;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * <p>
 * 复诊模版服务类
 * </p>
 *
 * @author QR
 * @since 2021-12-21
 */
public interface IDtrdEntRdFlupTemplateService extends IService<DtrdEntRdFlupTemplate> {

    List<FlupTemplateListInfo> getFlupTemplateList(FlupTemplateListRequest request);

    boolean saveOrUpdateFlupTemplate(FlupTemplateDetail dto);

    boolean removeFlupTemplate(Integer templateId);

    /**
     * 查询是否有除自身之外相同名字的模版
     */
    boolean isInValidTemplateName(String templateName, Integer templateId, String orgCode);

    /**
     * 保存复诊模版和项目的关系
     * @param templateId 复诊模版id
     * @param projectIds 复诊模版项目id集合
     * @return 操作结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean saveFlupTemplateProject(Integer templateId, List<Integer> projectIds);

    /**
     * 获取复诊模版名字
     */
    String getTemplateName(Integer templateId);
}
